﻿#pragma once


#include "MaterialGraph/Node/MaterialGraphNodeViewModel.h"
#include "MaterialBRDFNodeViewModel.m.h"

class RMaterialGraphNodeModel;
class RMaterialBRDFNodeModel;
class RMaterialGraphPinViewModel;

RCLASS()
class RMaterialBRDFNodeViewModel : public RMaterialGraphNodeViewModel
{
    ROBJECT
    
public:
    virtual void BindModel(
        TSharedObjectPtr<RMaterialGraphNodeModel> InModel
        , TSharedObjectPtr<RMaterialGraphViewModel> InGraph
        )  override;

    virtual float GetNodeWidth() const  override{ return 200.0f; }
    virtual int64_t GetLineNum() const override { return 5; }
    virtual SColor GetTitleBackgroundColor() const;
    virtual CString GetName() const override { return U"延迟物理光照输出"; };
    virtual CString GetInputPinName(int64_t Index) const override;
    virtual CString GetOutputPinName(int64_t Index) const override  { return U"DefferBRDF"; }

protected:
    TWeakObjectPtr<RMaterialBRDFNodeModel> BRDFModel;
};